﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace InterfaceHommeMachine
{
    class TestCase
    {
        public List<InterfaceJeu.Coordonnees> contientUnite(InterfaceJeu.Joueur joueur)
        {
            List<InterfaceJeu.Coordonnees> liste = new List<InterfaceJeu.Coordonnees>();
            foreach (InterfaceJeu.Unite unite in joueur.civilisation.unites)
            {
                liste.Add(unite.position);

            }
            return liste;
        }

        public InterfaceJeu.Ville obtenirVille(InterfaceJeu.Jeu j, InterfaceJeu.Coordonnees c)
        {
            foreach (InterfaceJeu.Joueur joueur in j.Joueurs)
            {
                foreach (InterfaceJeu.Ville v in joueur.civilisation.villes)
                {
                    if (c.Equals(v.caseSousLaVille.coordo))
                    {
                        
                        return v;
                        
                    }

                }
                
            }
            return null;
        }

        public List<InterfaceJeu.Unite> obtenirUnite(InterfaceJeu.Joueur joueur, InterfaceJeu.Coordonnees c)
        {
            List<InterfaceJeu.Unite> l = new List<InterfaceJeu.Unite>();
                foreach (InterfaceJeu.Unite unite in joueur.civilisation.unites)
                {
                    if (c.Equals(unite.position))
                    {
                        l.Add(unite);
                    }

                }
            return l;
        }

        public List<InterfaceJeu.Unite> obtenirUniteAutreJoueur( InterfaceJeu.Jeu jeu,  InterfaceJeu.Joueur joueur, InterfaceJeu.Coordonnees c)
        {
            List<InterfaceJeu.Unite> l = new List<InterfaceJeu.Unite>();
            foreach (InterfaceJeu.Joueur j in jeu.Joueurs)
            {
                if (j != joueur)
                {
                    foreach (InterfaceJeu.Unite unite in j.civilisation.unites)
                    {
                        if (c.Equals(unite.position))
                        {
                            l.Add(unite);
                        }

                    }
                }
            }
            return l;
        }

        public string obtenirUniteEnAttente(InterfaceJeu.Ville v)
        {
            switch (v.uniteEnCommande)
            {
                case (int)ImplementationJeu.Ville.UniteType.DIRECTEUR:
                    return "Directeur";
                case (int)ImplementationJeu.Ville.UniteType.ENSEIGNANT:
                    return "Enseignant";
                case (int)ImplementationJeu.Ville.UniteType.ETUDIANT:
                    return "Etudiant";
                default:
                    return "Aucune";
            }
        }

        public bool contientUniteEnnemie( InterfaceJeu.Jeu jeu,  InterfaceJeu.Joueur joueur, InterfaceJeu.Coordonnees c){
            List<InterfaceJeu.Unite> l = obtenirUniteAutreJoueur(jeu, joueur, c);
            foreach (InterfaceJeu.Joueur j in jeu.Joueurs)
            {
                if (j != joueur)
                {
                    InterfaceJeu.Ville ville = obtenirVille(jeu, c);
                    if(j.civilisation.villes.Contains(ville))
                        return true;

                }
            }
            return l.Count != 0;
    }

    }
}
